-
Notifications
You must be signed in to change notification settings - Fork 40
OpenRailwayMap-vector integration #132
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
hiddewie
wants to merge
600
commits into
OpenRailwayMap:master
Choose a base branch
from
hiddewie:master
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
The `{}` without a variable cause the features to fail to lookup:

See discussion in #278 (reply in thread) about Münster (https://www.openstreetmap.org/node/3374898279) not being qualified as a large station. One of the problems is that `public_transport=platform` are only imported if they are tagged as nodes or ways, not if they are relations.
From discussion in #278 (reply in thread) The `public_transport=stop_area` relations are not handled at the moment to find routes that belong to a station. By importing these relations, and joining the platforms, stop positions and stations together, more routes can be found where the spatial join does not work.
Part of #269 Order the signal features by their order in the definition YAML. This will allow reordering signals such that they match real life order on a signal post. Followup PRs: - order all signals based on their old ordering to keep the current ordering (based on signal type) - reorder german signals to solve #269 - Output variable values into tiles to split the features and their variables 
Followup on #369. Order all the signals based on their type, such that the order on the map does not change. No functional changes.
Part of #269 Signals on mast from bottom to top: - W1 - W18 - W22 - W18 - W2/W26a/W26b - W20/W19 - W24 - W21 - Main / combined signals ### Testing W1 and route indicator below main signal W18 below the main signal http://localhost:8000/#view=16.62/52.213161/20.939129&style=signals  http://localhost:8000/#view=18.89/52.2090341/20.9242024&style=signals 
Fixes #269 On signal mast, from bottom to top: - Shunting / minor signals - Wrong road Zs 6 - Dead end Zs 13 - Distant Route direction Zs 2v - Distant speed signals Zs 3v - Distant signal Vr, Hl, Ks - Main / combined signal - Speed signal Zs 3 - Route direction Zs 2 The conditional placement of Zs 2 below the main/combined signal in case Zs 3 is present, is not implemented. ### Testing Distant signals are below main signals http://localhost:8000/#view=17.15/51.939655/7.633332&style=signals  Route signal on top, shunting on the bottom http://localhost:8000/#view=18.79/51.9434865/7.6322188&style=signals  Wrong road, distant route and combined Ks signal http://localhost:8000/#view=18.71/50.9496012/6.9523263&style=signals  Departure, distant, main and route signals http://localhost:8000/#view=18.93/50.944902/6.9568253&style=signals 
Problem: signals with two types (e.g. main and departure) are matched 2 times during import. This causes the same feature to be output twice for the same signal. See e.g. https://openrailwaymap.fly.dev/#view=19.43/47.2588149/11.4025907&style=signals  After: 
Co-authored-by: Hidde Wieringa <[email protected]>
Currently the news hash changes too often, also on redeployment when the content of the news does not change. Solution: calculate the news hash on startup using a SHA1, and expose a custom header `x-content-hash`. First reload:  Reload, hash `68fe36f654263e549302c3317aaab0ad32c5ebc3` is picked up: 
For #313 Goal: ensure that both AMD64 and ARM64 images build and run correctly. See workflow run https://github.com/hiddewie/OpenRailwayMap-vector/actions/runs/14814434607 which runs successfully, including the screenshots.
Changes: - main repeated below main signals - speed limits above main signals - distant below main signals - do not duplicate icons for repeated main signal on shutzsignal - showplow signals - combined main and verschubsignal - resetting switch signal - EK 60 poor sight - rautentafel - Weichenüberwachungssignal - Zuglaufmeldestelle - Wartesignal light 
As the title says, I made an adjustment, so that We1 (We1a, We1b and We1c) signs are rendered, similarly to others We (PL) signs Co-authored-by: Hidde Wieringa <[email protected]>
- AT abdruck - AT signalnachahmer mit magnet - line legend with train protection construction rank - GB unknown route (threatre)
### Documentation and examples See https://provoz.spravazeleznic.cz/portal/ViewArticle.aspx?oid=1946317 See https://www.masinky.info/wp-content/uploads/2016/08/SZDC%20D1%20se%20zmenou%20c_1-3%20a%20Vynos%20c_3.pdf See https://web.archive.org/web/20090604163859/http://www.volweb.cz/asokol/cd/predpisy/navcd.htm See https://1-2-8.net/mwva/mikulda/d1/htm/druha2.htm See https://www.flickr.com/photos/mark_vogel/4593161052/in/album-72157623901945369 See https://www.lighting-gallery.net/gallery/displayimage.php?album=4715&pos=6&pid=223341 See https://www.atecheb.cz/produkty/znacky-upozornovadla See https://www.masinky.info/wp-content/uploads/2013/12/TNZ_34_2605.pdf See Cabride / Cabview videos "Pohled na trať" on Youtube ### Implemented - Main signals - Shunting signals - Combined signals - Distant signals - Speed limit (sign / light) - Distant speed limit (sign / light) There are currently two forms of tagging in use, both undocumented. For example `railway:signal:main=CZ` and `railway:signal:main=CZ-D1:hlavni_navestidlo`. ### Next - distinguishing different forms of main/combined signals ### Testing http://localhost:8000/#view=15.55/49.739468/13.593939&style=signals  http://localhost:8000/#view=17.51/49.772657/13.697165&style=signals  http://localhost:8000/#view=16.06/49.720665/13.347677&style=signals 
## DE Zs 6 (DR) sign/light http://localhost:8000/#view=17/54.298121/13.088004&style=signals  See https://youtu.be/kEKcYJp7yzs?feature=shared&t=7185 and https://wiki.openstreetmap.org/wiki/DE:OpenRailwayMap/Tagging_in_Germany#Zs_6_ex-DR_Stumpfgleis-_und_Fr%C3%BChhaltanzeiger ## BOStrab bü http://localhost:8000/#view=16.38/49.647191/8.486991&style=signals  See https://wiki.openstreetmap.org/wiki/DE:OpenRailwayMap/Tagging_Trams_in_Germany#%C3%9Cberwachungssignale_f%C3%BCr_Bahn%C3%BCberg%C3%A4nge_(B%C3%BC) ## HHA Sh 3 http://localhost:8000/#view=16.8/53.547396/9.987211&style=signals 
From https://wiki.openstreetmap.org/w/index.php?title=OpenRailwayMap/Tagging&diff=next&oldid=2823775 http://localhost:8000/#view=9.32/48.7996/2.4718&style=signals  http://localhost:8000/#view=12.09/48.74155/2.27244&style=signals  http://localhost:8000/#view=14.77/48.71097/2.24001&style=signals 
Fixes #397 Changes: - Split vacancy detection features into two features - DE Sv signals: add default - Add missing icons for traverser and turntable
Fixes #401 The railway crossings, phones, subway entrances, buffer stops, derailer and retarders were not output in tiles. The tiles are generated up to and including zoom level 14. Higher zoom levels are not output. The standard POIs are now all output from zoom 14 and up. The map style is conditioned on zoom levels, showing just the features that need to be shown according to their minimum allowed zoom level. Additionally, crossings are moved to zoom 15 instead of zoom 16.
Fixes #402 Vacancy detection already has a `railway` tag value, so does not need `railway=signal`. 
Part of #321 For Berlin, the tiles of the signals layer change from 1.7MB to 2.1MB. TODO: - [x] implement for speed - [x] implement for electricity - [x] reuse tag info (use generated SQL?, modify view to function?) - [x] Implement a nice tag description for every tag as feature property title - [x] Docs about how matching works - [x] verify for EU import if any features changed Changes in EU signals: - DE zp10 is now detected correctly if it exists on the signal (e.g. https://www.openstreetmap.org/node/110088505) - DE HHA h1 is the default instead of h0, no difference for signals that tag their states - NL speed signals (277, 276, 279) favor H/L/G aspects over speed values if the speed signal can show both (e.g. https://www.openstreetmap.org/node/6013691025) - PL sp, os, ms have different defaults if no states are tagged (e.g. https://www.openstreetmap.org/node/3046407095) http://localhost:8000/#view=13.53/47.35671/0.67842&style=signals  ### Import comparison between master and this branch (Europe) #### Master ``` 2025-05-18 13:37:42 Reading input files done in 74s (1m 14s). 2025-05-18 13:37:42 Processed 21188740 nodes in 31s - 684k/s 2025-05-18 13:37:42 Processed 2229021 ways in 40s - 56k/s 2025-05-18 13:37:42 Processed 340088 relations in 3s - 113k/s ... CREATE VIEW Time: 54.704 ms SELECT 384855 Time: 21623.621 ms (00:21.624) CREATE INDEX Time: 543.683 ms CLUSTER Time: 1185.724 ms (00:01.186) Timing is on. CREATE VIEW Time: 2.917 ms CREATE VIEW Time: 1.791 ms CREATE VIEW Time: 3.016 ms CREATE VIEW Time: 1.750 ms CREATE VIEW Time: 2.224 ms CREATE VIEW Time: 2.335 ms SELECT 102219 Time: 5919.989 ms (00:05.920) CREATE INDEX Time: 375.798 ms SELECT 123412 Time: 4931.113 ms (00:04.931) CREATE INDEX Time: 28.485 ms SELECT 102219 Time: 3070.182 ms (00:03.070) CREATE INDEX ... name | size ------------------------------------------------------+--------- railway_line (r) | 654 MB platforms (r) | 203 MB grouped_stations_with_route_count (m) | 101 MB signal_features (m) | 95 MB platforms_way_idx (i) | 86 MB signals (r) | 80 MB stop_positions (r) | 76 MB railway_line_way_idx (i) | 74 MB stations_clustered (m) | 73 MB pois (r) | 70 MB stop_positions_way_idx (i) | 34 MB pois_way_idx (i) | 24 MB stations (r) | 23 MB signals_way_idx (i) | 21 MB railway_positions (r) | 21 MB railway_switches (r) | 16 MB signal_features_way_index (i) | 15 MB railway_positions_way_idx (i) | 8848 kB stop_areas (r) | 7720 kB stop_areas_node_ref_ids_idx (i) | 7200 kB railway_switches_way_idx (i) | 7040 kB spatial_ref_sys (r) | 6936 kB routes_stop_ref_ids_idx (i) | 6936 kB stations_clustered_station_ids (i) | 6760 kB stations_with_route_count (m) | 5640 kB stop_areas_stop_ref_ids_idx (i) | 5104 kB stations_way_idx (i) | 5072 kB routes (r) | 4648 kB routes_platform_ref_ids_idx (i) | 4176 kB grouped_stations_with_route_count_center_index (i) | 4168 kB grouped_stations_with_route_count_buffered_index (i) | 4160 kB stations_with_route_count_idx (i) | 2736 kB stations_id_idx (i) | 2736 kB boxes (r) | 2000 kB subway_entrances (r) | 1640 kB stop_areas_platform_ref_ids_idx (i) | 1216 kB turntables (r) | 1112 kB subway_entrances_way_idx (i) | 632 kB boxes_way_idx (i) | 336 kB spatial_ref_sys_pkey (i) | 208 kB turntables_way_idx (i) | 104 kB sql_features (r) | 104 kB sql_implementation_info (r) | 48 kB sql_sizing (r) | 48 kB sql_parts (r) | 48 kB osm2pgsql_properties (r) | 16 kB osm2pgsql_properties_pkey (i) | 16 kB (47 rows) Time: 7.339 ms Timing is on. size --------- 1762 MB ``` #### This branch ``` 2025-05-18 13:12:50 Reading input files done in 81s (1m 21s). 2025-05-18 13:12:50 Processed 21188740 nodes in 38s - 558k/s 2025-05-18 13:12:50 Processed 2229021 ways in 40s - 56k/s 2025-05-18 13:12:50 Processed 340088 relations in 3s - 113k/s ... CREATE VIEW Time: 70.365 ms SELECT 384815 Time: 54559.599 ms (00:54.560) CREATE INDEX Time: 534.438 ms CLUSTER Time: 1675.338 ms (00:01.675) CREATE FUNCTION Time: 8.002 ms DO Time: 11.928 ms CREATE FUNCTION Time: 14.257 ms DO Time: 12.453 ms CREATE FUNCTION Time: 11.350 ms DO Time: 12.310 ms Timing is on. CREATE VIEW Time: 12.079 ms CREATE VIEW Time: 12.335 ms CREATE VIEW Time: 14.242 ms CREATE VIEW Time: 13.268 ms CREATE VIEW Time: 12.490 ms CREATE VIEW Time: 12.486 ms SELECT 102219 Time: 3678.441 ms (00:03.678) CREATE INDEX Time: 1559.621 ms (00:01.560) SELECT 123412 Time: 4719.376 ms (00:04.719) CREATE INDEX Time: 36.647 ms SELECT 102219 Time: 3117.260 ms (00:03.117) CREATE INDEX ... name | size ------------------------------------------------------+--------- railway_line (r) | 612 MB platforms (r) | 203 MB signal_features (m) | 108 MB grouped_stations_with_route_count (m) | 101 MB signals (r) | 93 MB platforms_way_idx (i) | 86 MB stop_positions (r) | 76 MB railway_line_way_idx (i) | 74 MB stations_clustered (m) | 73 MB pois (r) | 70 MB stop_positions_way_idx (i) | 34 MB pois_way_idx (i) | 24 MB stations (r) | 23 MB signals_way_idx (i) | 21 MB railway_positions (r) | 21 MB railway_switches (r) | 16 MB signal_features_way_index (i) | 15 MB railway_positions_way_idx (i) | 8848 kB stop_areas (r) | 7720 kB stop_areas_node_ref_ids_idx (i) | 7200 kB railway_switches_way_idx (i) | 7040 kB routes_stop_ref_ids_idx (i) | 6936 kB spatial_ref_sys (r) | 6936 kB stations_clustered_station_ids (i) | 6760 kB stations_with_route_count (m) | 5640 kB stop_areas_stop_ref_ids_idx (i) | 5104 kB stations_way_idx (i) | 5072 kB routes (r) | 4648 kB routes_platform_ref_ids_idx (i) | 4176 kB grouped_stations_with_route_count_center_index (i) | 4168 kB grouped_stations_with_route_count_buffered_index (i) | 4160 kB stations_with_route_count_idx (i) | 2736 kB stations_id_idx (i) | 2736 kB boxes (r) | 2000 kB subway_entrances (r) | 1640 kB stop_areas_platform_ref_ids_idx (i) | 1216 kB turntables (r) | 1112 kB subway_entrances_way_idx (i) | 632 kB boxes_way_idx (i) | 336 kB spatial_ref_sys_pkey (i) | 208 kB sql_features (r) | 104 kB turntables_way_idx (i) | 104 kB sql_implementation_info (r) | 48 kB sql_parts (r) | 48 kB sql_sizing (r) | 48 kB osm2pgsql_properties (r) | 16 kB osm2pgsql_properties_pkey (i) | 16 kB (47 rows) Time: 10.132 ms Timing is on. size --------- 1745 MB ```
Hi, recently the instruction for signalling in PL was updated (20th may) and it implemented half speeds for certain speed signals (speeds up to 100 km/h, every 5 km/h from 10 km/h). Since it's quite new, I haven't spotted any of those on railway network yet. However, for future edits, I've allowed for half speeds to be rendered with W8, W9 and W27a signals source: https://www.plk-sa.pl/files/public/user_upload/pdf/Akty_prawne_i_przepisy/Instrukcje/Wydruk/Ie/05_Instrukcja_Ie-1-od_2025-05-20_WCAG.pdf --------- Co-authored-by: Hidde Wieringa <[email protected]>
This PR properly imports the feature (`railway` tag) and state of a station. For example a `disused:railway=yard` will be imported as `feature=yard` and `state=disused`. The UI can show the state, and render the station feature with a different (gray?, brown?) color. Razed station features will no longer be imported.
Part of #302 See https://wiki.openstreetmap.org/wiki/OpenRailwayMap/Tagging#Catenary_mast http://localhost:8000/#view=14/52.27324/4.66677&style=electrification  http://localhost:8000/#view=15/52.27324/4.66677&style=electrification  http://localhost:8000/#view=17.4/52.162278/4.559897&style=electrification  http://localhost:8000/#view=14/52.37844/4.9105&style=electrification  http://localhost:8000/#view=15/52.37805/4.91108&style=electrification  http://localhost:8000/#view=16/52.377434/4.909438&style=electrification 
Followup on #412 Some small details were missing: tile generation, refs and taginfo.
Hi there, to better differentiate between D0 and mechanical distant signals, I've added W1 sign to those icons (similarly to german mechanical Vr signals)
Fixes #408 Stations still work fine: http://localhost:8000/#view=14.01/51.38781/-0.06701&date=1969 
Fixes #414 Opening the map in a blank state will continue from where the user left off. Using the URL hash will always override the last stored view.
Define colors for common operators, mostly in Europe, Asia and Oceania. Part of #597
this was more complicated than I expected, but it seems to work nicely. [OSM wiki](https://wiki.openstreetmap.org/wiki/Australian_Tagging_Guidelines/Railway_Signals#NSW_Main) for refererence. the semaphore icons are copy-pasted from 🇧🇪. <img width="65" height="96" alt="image" src="https://github.com/user-attachments/assets/230166e3-3e6f-48e2-9e8d-1ae83aab8e6e" /> <img width="72" height="72" alt="image" src="https://github.com/user-attachments/assets/4977eecd-5ffc-4c99-9d4e-f94943816984" /> <img width="76" height="148" alt="image" src="https://github.com/user-attachments/assets/25980492-1bd8-42d2-9412-22e178229f4e" /> <img width="102" height="181" alt="image" src="https://github.com/user-attachments/assets/6f7afa15-34d4-4bb1-9459-4e5bf6f29d18" /> <img width="69" height="67" alt="image" src="https://github.com/user-attachments/assets/0392d1c5-d1a3-42ec-b1cb-6bb2ae1db522" /> <img width="71" height="85" alt="image" src="https://github.com/user-attachments/assets/a55f0733-a309-4a96-8d47-8d95f457606d" /> <img width="97" height="82" alt="image" src="https://github.com/user-attachments/assets/1cbdc10f-63fd-45f2-b137-81e74c88c9bb" /> <img width="61" height="70" alt="image" src="https://github.com/user-attachments/assets/92ab972f-2021-437f-b2df-0b6b8e18eaae" />
See https://github.com/maplibre/maplibre-gl-js/releases/tag/v5.15.0 This contains maplibre/maplibre-gl-js#6659 which is needed to complete maplibre/maplibre-gl-js#6659 and #495
Includes comments from #717 (comment) Part of #597 ### Testing East United States: <img width="1432" height="1116" alt="image" src="https://github.com/user-attachments/assets/26c604f7-4a7f-4de9-bf53-17c1bc1bbdf3" /> North East US/Canada: <img width="1432" height="1116" alt="image" src="https://github.com/user-attachments/assets/04117e14-8167-4b54-a20a-9e632aa09c61" /> Mexico City: <img width="1432" height="1116" alt="image" src="https://github.com/user-attachments/assets/34b501aa-ebf9-4159-a9b8-4cefb343a37f" /> Brasil: <img width="1432" height="1116" alt="image" src="https://github.com/user-attachments/assets/19310025-f10c-4716-bff6-ddcae2ec2a8b" /> South Africa: <img width="1432" height="1116" alt="image" src="https://github.com/user-attachments/assets/1d70cd4b-177c-4370-90c3-895a3e7d7947" /> Tunesia: <img width="1432" height="1116" alt="image" src="https://github.com/user-attachments/assets/258be360-a596-485d-bd87-3c6802d9d72a" /> Europe: <img width="1432" height="1116" alt="image" src="https://github.com/user-attachments/assets/a58fb824-c0af-463c-ac7d-06afba1af13c" /> Switzerland / France / Italy: <img width="1432" height="1116" alt="image" src="https://github.com/user-attachments/assets/5c80c4ff-c35a-432a-b1cf-52b34dc0577a" /> Hungary / Serbia: <img width="1432" height="1116" alt="image" src="https://github.com/user-attachments/assets/3b115075-6364-4f9e-be20-19a0a97cf8c8" /> Georgia: <img width="1432" height="1116" alt="image" src="https://github.com/user-attachments/assets/89034f80-a5bf-4046-b03a-905583de1db1" /> India: <img width="1432" height="1116" alt="image" src="https://github.com/user-attachments/assets/180a7b30-3bf8-401b-bbc5-657bdd51b846" /> Korea: <img width="1432" height="1116" alt="image" src="https://github.com/user-attachments/assets/a03b54ec-0ddc-491f-b30d-6081539fe11a" /> Japan: <img width="1432" height="1116" alt="image" src="https://github.com/user-attachments/assets/8b5fd9e3-24ac-432a-9a21-65a5a4402791" /> Tokyo: <img width="1432" height="1116" alt="image" src="https://github.com/user-attachments/assets/c44ef823-85d4-43ee-acde-3ed1f1eb89b2" /> Osaka: <img width="1432" height="1116" alt="image" src="https://github.com/user-attachments/assets/4c1bd29f-fbe5-4d2b-9a10-11997612a4c0" /> Kunming: <img width="1432" height="1116" alt="image" src="https://github.com/user-attachments/assets/4ca768fb-e8d5-42dd-b515-85089fd2faa3" /> New York City: <img width="1432" height="1116" alt="image" src="https://github.com/user-attachments/assets/1c1ead94-9846-4c55-92d8-112644694998" /> London: <img width="1429" height="1071" alt="image" src="https://github.com/user-attachments/assets/a824eee9-4fb3-4b0d-a5da-203bf6ede08d" /> Paris: <img width="1432" height="1116" alt="image" src="https://github.com/user-attachments/assets/e9252533-9424-4732-a47d-3c8266c2f9ef" /> Munchen: <img width="1432" height="1116" alt="image" src="https://github.com/user-attachments/assets/9eb35939-3a78-4ce9-98e1-bed2747730e8" /> Leipzig: <img width="1432" height="1116" alt="image" src="https://github.com/user-attachments/assets/15d70283-32cc-4aba-ad21-50e34e3153c6" /> Beograd: <img width="1432" height="1116" alt="image" src="https://github.com/user-attachments/assets/241933e4-5ab8-46fc-a337-03018b12150f" /> Sydney: <img width="1432" height="1116" alt="image" src="https://github.com/user-attachments/assets/09b33dfd-5748-47f4-bb96-c53a555690f8" />
Fixes #713 There is a bit of duplication, but this is needed because of the `default` icons. On station of Reading (http://localhost:8000/#view=19.6/51.4598362/-0.9749119&style=signals): <img width="394" height="429" alt="image" src="https://github.com/user-attachments/assets/4add97a7-075d-4519-a208-c8e6653203b6" />
Usable since Maplibre GL JS 5.15, see #722 and maplibre/maplibre-gl-js#6659. The same structure will be used for #600 to toggle layer visibility.
From https://wiki.openstreetmap.org/wiki/OpenRailwayMap/Tagging See https://en.wikipedia.org/wiki/ATACS, https://en.wikipedia.org/wiki/Automatic_train_stop, https://en.wikipedia.org/wiki/Korean_Train_Control_System. South Korea (http://localhost:8000/#view=7.85/36.168/128.101&style=signals): Some lines are combined ATS and ETCS actually, this will be shown once #549 is implemented. Before: <img width="1431" height="1115" alt="image" src="https://github.com/user-attachments/assets/8c1235c6-ecc7-41c6-b493-d6c6cd42f44e" /> After: <img width="1431" height="1115" alt="image" src="https://github.com/user-attachments/assets/34ac45b1-fee7-4b71-9ba3-5fde498b57b5" />
Part of #495 Related to #246 and #336. There are requests to be able to render abandoned and razed railways, together with the existing infrastructure. This pull request makes that possible, either by including the OpenHistoricalMap data in the main infrastructure layer, or by showing the abandoned and razed railways. For future railways, the same can be chosen: railways under construction or also those proposed. Changes: - Configuration screen for historical and future railways - Map style adapts to using OpenHistoricalMap or OpenStreetMap as historical data source - Map style hides abandoned lines / stations if disabled in the configuration - Map style hides construction or proposed lines / stations if disabled in the configuration - UI to allow viewing OpenHistoricalMap data together with OpenStreetMap data for all times. - Include note that it is discouraged to map dismantled railway features in OpenStreetMap, with link to documentation. Depends on maplibre/maplibre-gl-js#6495 to ensure source data is not loaded if the layer is disabled through global-state. --> This has been integrated ## Testing ### Configuration <img width="846" height="291" alt="image" src="https://github.com/user-attachments/assets/ab6a5a84-0ce1-430f-a1ad-1ac8a9e6f158" /> ### Future infrastructure (http://localhost:8000/#view=14.87/50.94355/10.99233) Enabled: <img width="1125" height="873" alt="image" src="https://github.com/user-attachments/assets/491b59c9-cfb9-4e57-809a-c2b8dcb26d13" /> Disabled: <img width="1125" height="873" alt="image" src="https://github.com/user-attachments/assets/ce061c9d-06da-4ae5-aa14-66d4d62f0bb4" /> ### Historical infrastructure (http://localhost:8000/#view=12/50.62073/12.34528) OpenStreetMap: <img width="1686" height="939" alt="image" src="https://github.com/user-attachments/assets/162910da-41b8-4b3b-9246-9a942e064fb5" /> OpenHistoricalMap: <img width="1686" height="939" alt="image" src="https://github.com/user-attachments/assets/78612948-296d-4510-b9af-0815df540727" /> (http://localhost:8000/#view=11.61/51.1841/12.3729) OpenStreetMap: <img width="1686" height="939" alt="image" src="https://github.com/user-attachments/assets/55a30b53-cf84-4176-ad04-128d670b8cce" /> OpenHistoricalMap: <img width="1686" height="939" alt="image" src="https://github.com/user-attachments/assets/2c4b6f2f-cde9-4fef-915d-179e83a1e4d0" /> (http://localhost:8000/#view=17.53/51.178254/12.389887) OpenStreetMap: <img width="1686" height="939" alt="image" src="https://github.com/user-attachments/assets/7662e555-6afb-4e20-b6ab-cf0cd576309b" /> OpenHistoricalMap: <img width="1686" height="939" alt="image" src="https://github.com/user-attachments/assets/e8cd8cad-2440-4091-a557-5e599c21638b" /> (http://localhost:8000/#view=12.93/54.96675/-1.58696&date=all) OpenStreetMap: <img width="1686" height="939" alt="image" src="https://github.com/user-attachments/assets/830a8a44-df47-4ecc-af36-093564a4c491" /> OpenHistoricalMap: <img width="1686" height="939" alt="image" src="https://github.com/user-attachments/assets/cc40a3a1-9b56-4751-8ab2-1f61aa807f7b" /> (year 1896) <img width="1686" height="939" alt="image" src="https://github.com/user-attachments/assets/8c16393f-8dac-4f99-b333-fa05cfb36566" />
Part of #272 Only import and display in popup. The visualization as a map layer with colors on the railway lines will come later. <img width="1430" height="867" alt="image" src="https://github.com/user-attachments/assets/77bb99dd-bce8-4513-8bc0-8b41a52ae1a7" />
<img width="1181" height="785" alt="image" src="https://github.com/user-attachments/assets/6261b05c-12ef-415c-9497-8c9844bbc2b0" /> <img width="1181" height="785" alt="image" src="https://github.com/user-attachments/assets/a8798b59-5f0c-428c-b053-18a2ae17fa33" />
Goal: allow generating the dynamic legend, to take account the user configuration for showing which entries to show. Needed for #731, which will contain legend entries for either the voltage / frequency, or maximum current. Changes: - Generate the legend in the UI, instead of during style generation. - Simplify legend generation: - Only generate for current map zoom - Only generate legend when the legend is shown - Encapsulate legend fully in the legend control, less global state in UI - Fixes legend for OpenHistoricalMap-powered historical railways - Makes legend show relevant entries like abandoned/razed railways when OpenStreetMap is used to show historical data, or when constructed or proposed rail/stations are enabled Additionally, this change improves the performance of the UI somewhat, because the legend and corresponding map, style and icons are not loaded when not needed. Legend for low zooms, present, historical, all time: <img width="318" height="454" alt="image" src="https://github.com/user-attachments/assets/ab8d4206-2306-44b2-abde-ccc524fc8306" /><img width="318" height="454" alt="image" src="https://github.com/user-attachments/assets/2e5eb626-5fbb-4b39-af04-9798d447fc9d" /><img width="318" height="454" alt="image" src="https://github.com/user-attachments/assets/4a1a849d-22d8-4761-abe4-095fb9b9b68f" /> Legend without and with construction and proposed railways enabled: <img width="318" height="454" alt="image" src="https://github.com/user-attachments/assets/b57a0643-68b5-4991-9e29-a372b583be38" /><img width="318" height="454" alt="image" src="https://github.com/user-attachments/assets/b86ca6cb-74d8-45e8-a9b1-f25c0b636526" /> Legend without and with OpenStreetMap historical railway lines enabled: <img width="318" height="454" alt="image" src="https://github.com/user-attachments/assets/56a79594-2a08-48fc-adf7-25796d8e0f1d" /><img width="318" height="454" alt="image" src="https://github.com/user-attachments/assets/bf981668-7765-4e24-84b8-34903ea73da3" />
…n layer (#731) Part of #272 Followup of #730 Pre-work for discussion #527. Changes: - Addition of tabs in the configuration modal to support configuration per map layer - Addition of configuration of the electrification layer to support both voltage/frequency and maximum current ~TODO: move some configuration to its own section in the configuration modal~ --> #738 ~TODO: make legend work~ --> #742 ## Testing ### Configuration <img width="292" height="285" alt="image" src="https://github.com/user-attachments/assets/53f7c760-0086-49c8-85f2-becb35396f75" /> <img width="1430" height="586" alt="image" src="https://github.com/user-attachments/assets/308d1812-808c-44dc-babb-2fbb18ff3286" /> ### Belgium (http://localhost:8000/#view=7.95/50.771/4.453&style=electrification) <img width="1432" height="1107" alt="image" src="https://github.com/user-attachments/assets/0d48819e-c7c4-4121-866f-418810fb5526" /> ### Germany (http://localhost:8000/#view=9/49.1888/8.9868&style=electrification) <img width="1430" height="1107" alt="image" src="https://github.com/user-attachments/assets/a381190b-a076-4bc4-8fc2-44e290d9affd" /> ### Italy (http://localhost:8000/#view=7.64/45.826/11.885&style=electrification) <img width="1430" height="1107" alt="image" src="https://github.com/user-attachments/assets/af025b96-7258-436a-94b7-40be2509f795" /> ### Legend <img width="1429" height="743" alt="image" src="https://github.com/user-attachments/assets/3f19b82b-a08a-40c5-b1c7-71b65da52419" /> <img width="1429" height="743" alt="image" src="https://github.com/user-attachments/assets/1f6efcb5-5395-4e02-9a98-9e60ea04708d" />
Built on #731. Move configuration of the infrastructure layer to the separate configuration section. <img width="1432" height="588" alt="image" src="https://github.com/user-attachments/assets/ed149c1c-1713-4479-baef-5f15de6568d5" />
Includes https://github.com/hiddewie/OpenRailwayMap-vector/pulls/731 Part of #272 Render the maximum delivered power of a railway line, if both voltage and maximum current are known. ~Dummy PR until the maximum current is done.~ ## Testing ### Configuration <img width="1431" height="338" alt="image" src="https://github.com/user-attachments/assets/3d318e5d-4b52-4b95-ba5f-115613d93f77" /> ### Belgium (http://localhost:8000/#view=7.71/50.725/4.074&style=electrification) <img width="1431" height="827" alt="image" src="https://github.com/user-attachments/assets/3ab41710-a1dd-4f58-9398-f9b704831c4a" /> ### Germany (http://localhost:8000/#view=8.51/49.1678/8.8557&style=electrification) <img width="1431" height="827" alt="image" src="https://github.com/user-attachments/assets/dc1bf496-707a-41cd-9177-7dd577b85e1f" /> ### Italy (http://localhost:8000/#view=7.72/46.154/12.237&style=electrification) <img width="1431" height="827" alt="image" src="https://github.com/user-attachments/assets/7c4cb2fb-47d0-44ec-aa2d-c60a5cf96141" />
<img width="1435" height="57" alt="image" src="https://github.com/user-attachments/assets/c05481b5-2e8e-4412-a61e-40ca5b05d664" />
Same as #706, now for the operator layer. (http://localhost:8000/#view=16.06/45.447618/10.949145&style=operator) Before: <img width="705" height="702" alt="image" src="https://github.com/user-attachments/assets/de2cdfa0-9798-4ed6-a1fd-cfdd7595f7f8" /> After: <img width="705" height="702" alt="image" src="https://github.com/user-attachments/assets/d27b9e5b-cc94-420d-8ae1-a6cf391cf57a" />
Similar to bridges: only render them based on the zoom level and a minimum length. (http://localhost:8000/#view=9.27/44.4522/9.039&style=electrification) Before: <img width="944" height="540" alt="image" src="https://github.com/user-attachments/assets/fd2465ce-5183-4ebc-aa96-00225d4d007b" /> After: <img width="944" height="540" alt="image" src="https://github.com/user-attachments/assets/c0ff4daf-2e0b-431d-8e7f-c3a23e963f27" />
) Goal: reduce the amount of styles visible by default, to allow for new styles like routes (#413) and diagnostics (#648). The gauge, loading gauge and track class styles all have to do with the track, space around the track and their size/weight bearing properties. The three styles are merged into a single **Track** style, with configuration to render the railway lines using the gauge, loading gauge or track class colors. The legend updates automatically. Existing links to the the `gauge`, `loading_gauge` and `track_class` styles as hash parameters are automatically updated to change the configuration and show the new track style. Configuration: <img width="1431" height="826" alt="image" src="https://github.com/user-attachments/assets/dd21d2f4-d8ad-4d7e-9f9c-6c4e2cb7ae79" /> Gauge: <img width="1431" height="826" alt="image" src="https://github.com/user-attachments/assets/21805e1d-c06e-4e28-9d76-cb05beb7357c" /> Loading gauge: <img width="1431" height="826" alt="image" src="https://github.com/user-attachments/assets/9febefcf-5d95-444d-9552-8946f1e50aed" /> Track class: <img width="1431" height="826" alt="image" src="https://github.com/user-attachments/assets/90f23817-23d2-4cf2-a34c-035b4fd48ccb" />
Fixes #732 Render historical railway landuse. Example Tegola UI link: https://vtiles.openhistoricalmap.org/#16/52.330959/4.966813 Layer: `landuse_areas` Class: `landuse` Type: `railway` (http://localhost:8000/#view=14.65/52.33033/4.96296&date=all): <img width="1399" height="793" alt="image" src="https://github.com/user-attachments/assets/b0bfd800-09ad-4ae8-9811-ee4d25b2497e" /> (http://localhost:8000/#view=14.65/52.33033/4.96296&date=1978): <img width="1434" height="679" alt="image" src="https://github.com/user-attachments/assets/1468ebc8-ec39-42f5-bf51-fe0775a37646" />
Added [badges](https://github.com/badges/shields). Maintainers feel free to modify or discard changes. [See changes visually](https://github.com/danieldegroot2/OpenRailwayMap-vector/tree/readme-badges?tab=readme-ov-file#openrailwaymap-vector-map-styles) (Scroll up slightly. You might have to (Ctrl+)(Shift+)F5 clear cache to see valid BMC supporters count.) --- I am aware this repository is [possibly being integrated](OpenRailwayMap#132) into the OpenRailwayMap-CartoCSS repository. Check with the maintainers which content should be kept from each repository / how ie. funding might be handled. --------- Co-authored-by: Hidde Wieringa <[email protected]>
Noticed during #734 (comment) For tall icons for the bottom icon of a signal feature, the reference is always offset using the same fixed offset. This will overlap the reference text with the icon. Instead, output the icon offset such that the text label for the reference can be offset by the same value (plus some padding). (http://localhost:8000/#view=18.41/49.010647/8.384991/-19.5&style=signals): <img width="1074" height="574" alt="image" src="https://github.com/user-attachments/assets/c2288181-d5f6-4327-ab5d-0ac441065624" /> (http://localhost:8000/#view=18.08/49.00242/8.394911/-19.5&style=signals) <img width="1074" height="574" alt="image" src="https://github.com/user-attachments/assets/8ab6c7b6-c929-4611-9b9d-beadda7b015b" /> (http://localhost:8000/#view=19/48.9970422/8.4158721/-19.5&style=signals) <img width="1074" height="574" alt="image" src="https://github.com/user-attachments/assets/283ae76b-cfd9-44cc-8129-b91b11545251" />
AKN <img width="361" height="822" alt="image" src="https://github.com/user-attachments/assets/e7a6a3ff-d728-4a5d-b6d0-3228565b315f" /> Deutsche Regionaleisenbahn <img width="1045" height="382" alt="image" src="https://github.com/user-attachments/assets/27d2b859-a6e9-4c4a-8352-299a5a652a73" /> Thüringer Eisenbahn GmbH and Deutsche Regionaleisenbahn <img width="567" height="395" alt="image" src="https://github.com/user-attachments/assets/40323e54-e392-41ab-a14b-5691b1506567" /> Schieneninfrastruktur Ost-Niedersachsen GmbH <img width="703" height="811" alt="image" src="https://github.com/user-attachments/assets/218f9496-b8a5-4688-a214-f0e4a197354b" />
Adds GB stop & fixed distant boards. Distant signals kept together. Stop board placed to allow for a position light (shunt) signal, but below an LC indicator. Only thing of note is that the order would be slightly at issue with ETCS block markers, however I will create an issue and then PR shortly after this is merged, as there are also other order issues to work on.
For stacked signal icons, with multiple icons that have an icon with a position defined, only the first position was removed on the catalog lookup. Found during testing of #734 (comment) (http://localhost:8000/#view=17.65/49.00464/8.411248/-19.5&style=signals): <img width="847" height="596" alt="image" src="https://github.com/user-attachments/assets/8a0731fe-6a35-402f-8e44-83b417428464" />
… lines (#748) Part of #413 Integrate railway routes for stations, platforms, stop positions and railway lines in the popup UI and on the map when clicked. Changes: - [x] Import route details - [x] Add routes in popup for lines - [x] Add routes in popup for platforms - [x] Add routes in popup for stop positions - [x] Add routes in popup for stations - [x] Add display of route on map when clicking route - [x] Add display of route information when clicking route See: - https://wiki.openstreetmap.org/wiki/Relation:route - https://wiki.openstreetmap.org/wiki/Tag:route=train?uselang=en
Fixes #749 The wrong tag for opposite regime signals was used. Related to #541, which fixed this for main signals. Also, add the yellow distant signal marker board Before: <img width="524" height="556" alt="image" src="https://github.com/user-attachments/assets/f794962a-e0aa-47d6-8540-d58059a7ff79" /> After: <img width="433" height="501" alt="image" src="https://github.com/user-attachments/assets/d6d898c1-69ce-4ba5-8dd7-66fdcd811e9b" />
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hi!
Over the past years I have been working on a fork of the OpenRailwayMap.
The announcement can be found on the OpenRailwayMap mailing list and on the OpenStreetMap community forum.
The fork has several features, and is actively being developed by me and several more contributors:
At the moment the fork is hosted on https://openrailwaymap.app using Fly.io. This is purely practical, it could be hosted anywhere else.
This pull request is a starter to discuss:
openrailwaymap.org?These are open questions, any response is appreciated!